#include "stdio.h"
#include "stdarg.h"
#include "string.h"

typedef struct
{
    char method[20];
    char arg0[20];
    char arg1[20];
    char arg2[20];
} StrtokMethodTypeDef;

StrtokMethodTypeDef strtokParseMethodByteArr(char *input)
{
    StrtokMethodTypeDef srtd;
    const char s[4] = "(,)";
    char *token;
    /* 获取第一个子字符串 */
    token = strtok(input, s);
    /* 继续获取其他的子字符串 */
    int i = 0;
    while (token != NULL)
    {
        // printf( "%s\n", token );
        if (i == 0)
        {
            sprintf(srtd.method, "%s", token);
        }
        if (i == 1)
        {
            sprintf(srtd.arg0, "%s", token);
        }
        if (i == 2)
        {
            sprintf(srtd.arg1, "%s", token);
        }
        if (i == 3)
        {
            sprintf(srtd.arg2, "%s", token);
        }
        token = strtok(NULL, s);
        i++;
    }
    return srtd;
}

StrtokMethodTypeDef strtokParseMethodStr(const char *str)
{
    StrtokMethodTypeDef srtd;
    static char input[40] = {0};
    strcpy(input, str);
    return strtokParseMethodByteArr(input);
}

int main()
{
    StrtokMethodTypeDef r = strtokParseMethodStr("ming(_,2)");
    printf(r.method);
    printf(r.arg0);
    printf(r.arg1);
    return 0;
}